package com.ruoyi.monitor.mapper;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.ruoyi.monitor.domain.BusWaterIntegrationmonitordata;
import org.apache.ibatis.annotations.Param;

/**
 * 手工断面监测数据（月）Mapper接口
 * 
 * @author maliang
 * @date 2025-08-16
 */
public interface BusWaterIntegrationmonitordataMapper 
{
    /**
     * 查询手工断面监测数据（月）
     * 
     * @param segmentid 手工断面监测数据（月）主键
     * @return 手工断面监测数据（月）
     */
    public BusWaterIntegrationmonitordata selectBusWaterIntegrationmonitordataBySegmentid(String segmentid);

    /**
     * 查询手工断面监测数据（月）列表
     * 
     * @param busWaterIntegrationmonitordata 手工断面监测数据（月）
     * @return 手工断面监测数据（月）集合
     */
    public List<BusWaterIntegrationmonitordata> selectBusWaterIntegrationmonitordataList(BusWaterIntegrationmonitordata busWaterIntegrationmonitordata);

    /**
     * 新增手工断面监测数据（月）
     * 
     * @param busWaterIntegrationmonitordata 手工断面监测数据（月）
     * @return 结果
     */
    public int insertBusWaterIntegrationmonitordata(BusWaterIntegrationmonitordata busWaterIntegrationmonitordata);

    /**
     * 修改手工断面监测数据（月）
     * 
     * @param busWaterIntegrationmonitordata 手工断面监测数据（月）
     * @return 结果
     */
    public int updateBusWaterIntegrationmonitordata(BusWaterIntegrationmonitordata busWaterIntegrationmonitordata);

    /**
     * 删除手工断面监测数据（月）
     * 
     * @param segmentid 手工断面监测数据（月）主键
     * @return 结果
     */
    public int deleteBusWaterIntegrationmonitordataBySegmentid(String segmentid);

    /**
     * 批量删除手工断面监测数据（月）
     * 
     * @param segmentids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBusWaterIntegrationmonitordataBySegmentids(String[] segmentids);

    List<Map> cbThreeItem(@Param("startTime") Date startTime,@Param("endTime")  Date endTime,@Param("countyCode") String countyCode,@Param("riverId") String riverId);

    List<Map> cbItemList(@Param("idList") List<String> idList,@Param("startTime") Date startTime,@Param("endTime") Date endTime,@Param("controlLevelCodeList") List<String> controlLevelCodeList);
    List<Map> cbThreeMonth(@Param("startTime") Date startTime,@Param("endTime")  Date endTime,@Param("countyCode") String countyCode,@Param("riverId") String riverId);
    List<Map> cbCountByMonthAndItem(@Param("startTime") Date startTime,@Param("endTime")  Date endTime,@Param("countyCode") String countyCode,@Param("riverId") String riverId);

    List<Map> excellentThree(@Param("idList") List<String> idList,@Param("startTime") Date startTime,@Param("endTime") Date endTime,@Param("controlLevelCodeList") List<String> controlLevelCodeList);

    List<Map> inferiorFive(@Param("idList") List<String> idList,@Param("startTime") Date startTime,@Param("endTime") Date endTime,@Param("controlLevelCodeList") List<String> controlLevelCodeList);
}
